<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    <li class="item">1</li>
    <li class="item">2</li>
</ul>
<script>
    // for for...in for...of forEach
    // 可迭代类型iterable有：Array、Set、Map、String、arguments、NodeList
    // 可迭代类型都有[Symbol.iterator]方法
    // 都可以使用Symbol.iterator方法获取迭代器，然后.next遍历
    // for...of是循环迭代器的 Array、Set、Map、String、arguments、NodeList 可以使用
    // forEach是循环迭代器的 Array、Set、Map 可以使用
    // for...in普通循环 Array、String、NodeList、普通json对象 可以使用
    // for 普通循环 Array、String、NodeList 可以使用 for的效率最高
    // 性能上来说 for > forEach > map
    function sum() {
        console.log('arguments', arguments);
        // let iterator = arguments[Symbol.iterator]();
        // console.log(iterator.next());
        // console.log(iterator.next());
        // console.log(iterator.next());
        // console.log(iterator.next());
        for (const key of arguments) {
            console.log('key', key, arguments[key]);
        }
        // for (let i = 0;i < arguments.length;i++) {
        //     console.log(arguments[i]);
        // }
    }
    // const map = new Map([['name', 'zhang']]);
    // const set = new Set([1,2,3,4,5]);
    // const arr = [1, 2, 3];
    // const str = new String('hello');
    // const domItems = document.getElementsByClassName('item');
    // console.log('map', map);
    // console.log('set', set);
    // console.log('arr', arr);
    // console.log('str', str);
    // console.log('domItems', domItems);
    sum(10, 20, 30);

    // console.log('map', map);
    // console.log('map entries', map.entries());
    // console.log('map keys', map.keys());
    // console.log('map values', map.values());
    // for (const key in arr) {
    //     console.log('key', key, arr[key]);
    // }
    // for (let i = 0;i < domItems.length;i++) {
    //     console.log(domItems[i]);
    // }
    // let iterator = domItems[Symbol.iterator]();
    // console.log(iterator.next());
    // console.log(iterator.next());
    // console.log(iterator.next());
    // console.log(iterator.next());
</script>
</body>
</html>